
<!DOCTYPE HTML>
<html lang="" >
    <head>
        <meta charset="UTF-8">
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <title>视图逻辑 · GitBook</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="description" content="">
        <meta name="generator" content="GitBook 3.2.3">
        
        
        
    
    <link rel="stylesheet" href="../gitbook/style.css">

    
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-highlight/website.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-search/search.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-fontsettings/website.css">
                
            
        

    

    
        
    
        
    
        
    
        
    
        
    
        
    

        
    
    
    <meta name="HandheldFriendly" content="true"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
    <link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">

    
    
    <link rel="prev" href="ACTION.html" />
    

    </head>
    <body>
        
<div class="book">
    <div class="book-summary">
        
            
<div id="book-search-input" role="search">
    <input type="text" placeholder="Type to search" />
</div>

            
                <nav role="navigation">
                


<ul class="summary">
    
    

    

    
        
        
    
        <li class="chapter " data-level="1.1" data-path="../">
            
                <a href="../">
            
                    
                    前言
            
                </a>
            

            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="2.1" >
            
                <span>
            
                    
                    应用
            
                </span>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.1.1" data-path="../APPS/LOCALE.html">
            
                <a href="../APPS/LOCALE.html">
            
                    
                    国际化
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.2" data-path="../APPS/EXTENDED.html">
            
                <a href="../APPS/EXTENDED.html">
            
                    
                    快速介入
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.3" data-path="../APPS/STYLE.html">
            
                <a href="../APPS/STYLE.html">
            
                    
                    样式规划
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.4" data-path="../APPS/NAVG.html">
            
                <a href="../APPS/NAVG.html">
            
                    
                    导航模式
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.5" data-path="../APPS/TEMP.html">
            
                <a href="../APPS/TEMP.html">
            
                    
                    临时模式
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.6" data-path="../APPS/Theme.html">
            
                <a href="../APPS/Theme.html">
            
                    
                    应用主题
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.7" data-path="../APPS/NAVPARAM.html">
            
                <a href="../APPS/NAVPARAM.html">
            
                    
                    自定义导航参数
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.8" data-path="../APPS/VIEWMESSAGE.html">
            
                <a href="../APPS/VIEWMESSAGE.html">
            
                    
                    视图消息
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="2.2" >
            
                <span>
            
                    
                    视图
            
                </span>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.2.1" data-path="../VIEWS/EDITVIEW.html">
            
                <a href="../VIEWS/EDITVIEW.html">
            
                    
                    实体编辑视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.2" data-path="../VIEWS/EDITVIEWPAGE.html">
            
                <a href="../VIEWS/EDITVIEWPAGE.html">
            
                    
                    实体编辑视图(分页关系)
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.3" data-path="../VIEWS/EDITVIEWUPDOWN.html">
            
                <a href="../VIEWS/EDITVIEWUPDOWN.html">
            
                    
                    实体编辑视图(上下关系)
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.4" data-path="../VIEWS/EDITVIEWABOUT.html">
            
                <a href="../VIEWS/EDITVIEWABOUT.html">
            
                    
                    实体编辑视图(左右关系)
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.5" data-path="../VIEWS/MEDITVIEW.html">
            
                <a href="../VIEWS/MEDITVIEW.html">
            
                    
                    实体多表单编辑视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.6" data-path="../VIEWS/GRIDVIEW.html">
            
                <a href="../VIEWS/GRIDVIEW.html">
            
                    
                    实体表格视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.7" data-path="../VIEWS/GRIDEXPVIEW.html">
            
                <a href="../VIEWS/GRIDEXPVIEW.html">
            
                    
                    实体表格导航视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.8" data-path="../VIEWS/TABEXPVIEW.html">
            
                <a href="../VIEWS/TABEXPVIEW.html">
            
                    
                    实体分页导航视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.9" data-path="../VIEWS/EntityDataKanbanView.html">
            
                <a href="../VIEWS/EntityDataKanbanView.html">
            
                    
                    实体数据看板视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.10" data-path="../VIEWS/LISTVIEW.html">
            
                <a href="../VIEWS/LISTVIEW.html">
            
                    
                    实体列表视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.11" data-path="../VIEWS/LISTEXPVIEW.html">
            
                <a href="../VIEWS/LISTEXPVIEW.html">
            
                    
                    实体列表导航视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.12" data-path="../VIEWS/DATAVIEW.html">
            
                <a href="../VIEWS/DATAVIEW.html">
            
                    
                    实体数据视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.13" data-path="../VIEWS/OPTIONVIEW.html">
            
                <a href="../VIEWS/OPTIONVIEW.html">
            
                    
                    实体选项操作视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.14" data-path="../VIEWS/DATAVIEWEXPVIEW.html">
            
                <a href="../VIEWS/DATAVIEWEXPVIEW.html">
            
                    
                    实体卡片导航视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.15" data-path="../VIEWS/CALENDARVIEW.html">
            
                <a href="../VIEWS/CALENDARVIEW.html">
            
                    
                    实体日历视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.16" data-path="../VIEWS/DAREXPVIEW.html">
            
                <a href="../VIEWS/DAREXPVIEW.html">
            
                    
                    实体日历导航视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.17" data-path="../VIEWS/TREEVIEW.html">
            
                <a href="../VIEWS/TREEVIEW.html">
            
                    
                    实体树视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.18" data-path="../VIEWS/TREEEXPVIEW.html">
            
                <a href="../VIEWS/TREEEXPVIEW.html">
            
                    
                    实体树导航视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.19" data-path="../VIEWS/TREEGRIDEXVIEW.html">
            
                <a href="../VIEWS/TREEGRIDEXVIEW.html">
            
                    
                    实体树表格视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.20" data-path="../VIEWS/INDEXVIEW.html">
            
                <a href="../VIEWS/INDEXVIEW.html">
            
                    
                    应用首页视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.21" data-path="../VIEWS/AppKanBanView.html">
            
                <a href="../VIEWS/AppKanBanView.html">
            
                    
                    应用看板视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.22" data-path="../VIEWS/ENTITYKANBANVIEW.html">
            
                <a href="../VIEWS/ENTITYKANBANVIEW.html">
            
                    
                    实体看板视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.23" data-path="../VIEWS/GANTTVIEW.html">
            
                <a href="../VIEWS/GANTTVIEW.html">
            
                    
                    实体甘特图视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.24" data-path="../VIEWS/ENTITYCHARTVIEW.html">
            
                <a href="../VIEWS/ENTITYCHARTVIEW.html">
            
                    
                    实体图表视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.25" data-path="../VIEWS/ENTITYDATASELECTVIEW.html">
            
                <a href="../VIEWS/ENTITYDATASELECTVIEW.html">
            
                    
                    实体数据选择视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.26" data-path="../VIEWS/ENTITYSELECTGRIDVIEW.html">
            
                <a href="../VIEWS/ENTITYSELECTGRIDVIEW.html">
            
                    
                    实体选择表格视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.27" data-path="../VIEWS/ENTITYSELECTTREEVIEW.html">
            
                <a href="../VIEWS/ENTITYSELECTTREEVIEW.html">
            
                    
                    实体选择树视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.28" data-path="../VIEWS/INDEXPICKUPDATAVIEW.html">
            
                <a href="../VIEWS/INDEXPICKUPDATAVIEW.html">
            
                    
                    实体索引关系选择视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.29" data-path="../VIEWS/ENTITYWORKFLOWTABLEEXPVIEW.html">
            
                <a href="../VIEWS/ENTITYWORKFLOWTABLEEXPVIEW.html">
            
                    
                    实体工作流动态导航表格视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.30" data-path="../VIEWS/ENTITYWORKFLOWEDITVIEW.html">
            
                <a href="../VIEWS/ENTITYWORKFLOWEDITVIEW.html">
            
                    
                    实体工作流动态编辑视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.31" data-path="../VIEWS/LOGINVIEW.html">
            
                <a href="../VIEWS/LOGINVIEW.html">
            
                    
                    应用登录视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.32" data-path="../VIEWS/DATAUPLOADVIEW.html">
            
                <a href="../VIEWS/DATAUPLOADVIEW.html">
            
                    
                    应用数据导入视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.33" data-path="../VIEWS/REDIRECTVIEW.html">
            
                <a href="../VIEWS/REDIRECTVIEW.html">
            
                    
                    实体数据重定向视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.34" data-path="../VIEWS/CUSTOM.html">
            
                <a href="../VIEWS/CUSTOM.html">
            
                    
                    实体自定义视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2.35" data-path="../VIEWS/WIZARDVIEW.html">
            
                <a href="../VIEWS/WIZARDVIEW.html">
            
                    
                    实体向导视图
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="2.3" >
            
                <span>
            
                    
                    部件
            
                </span>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.3.1" data-path="../CTRLS/FORM.html">
            
                <a href="../CTRLS/FORM.html">
            
                    
                    表单
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.2" data-path="../CTRLS/GRID.html">
            
                <a href="../CTRLS/GRID.html">
            
                    
                    表格
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.3" data-path="../CTRLS/GRIDEXPBAR.html">
            
                <a href="../CTRLS/GRIDEXPBAR.html">
            
                    
                    表格导航
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.4" data-path="../CTRLS/SEARCHBAR.html">
            
                <a href="../CTRLS/SEARCHBAR.html">
            
                    
                    搜索栏
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.5" data-path="../CTRLS/SEARCHFORM.html">
            
                <a href="../CTRLS/SEARCHFORM.html">
            
                    
                    搜索表单
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.6" data-path="../CTRLS/DataKanBan.html">
            
                <a href="../CTRLS/DataKanBan.html">
            
                    
                    数据看板
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.7" data-path="../CTRLS/PortalComponents.html">
            
                <a href="../CTRLS/PortalComponents.html">
            
                    
                    门户部件
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.8" data-path="../CTRLS/TABEXPPANEL.html">
            
                <a href="../CTRLS/TABEXPPANEL.html">
            
                    
                    分页导航面板
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.9" data-path="../CTRLS/TABVIEWPANEL.html">
            
                <a href="../CTRLS/TABVIEWPANEL.html">
            
                    
                    分页视图面板
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.10" data-path="../CTRLS/APPMENU.html">
            
                <a href="../CTRLS/APPMENU.html">
            
                    
                    应用菜单
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.11" data-path="../CTRLS/LIST.html">
            
                <a href="../CTRLS/LIST.html">
            
                    
                    列表
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.12" data-path="../CTRLS/LISTEXPBAR.html">
            
                <a href="../CTRLS/LISTEXPBAR.html">
            
                    
                    列表导航
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.13" data-path="../CTRLS/PANEL.html">
            
                <a href="../CTRLS/PANEL.html">
            
                    
                    面板
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.14" data-path="../CTRLS/DATAVIEWCTRL.html">
            
                <a href="../CTRLS/DATAVIEWCTRL.html">
            
                    
                    数据视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.15" data-path="../CTRLS/DATAVIEWEXPBAR.html">
            
                <a href="../CTRLS/DATAVIEWEXPBAR.html">
            
                    
                    卡片视图导航
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.16" data-path="../CTRLS/DataRelationPage.html">
            
                <a href="../CTRLS/DataRelationPage.html">
            
                    
                    数据关系分页
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.17" data-path="../CTRLS/DATARELATIONFIELD.html">
            
                <a href="../CTRLS/DATARELATIONFIELD.html">
            
                    
                    数据关系栏
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.18" data-path="../CTRLS/CALENDAR.html">
            
                <a href="../CTRLS/CALENDAR.html">
            
                    
                    日历部件
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.19" data-path="../CTRLS/CALENDARTIMELINE.html">
            
                <a href="../CTRLS/CALENDARTIMELINE.html">
            
                    
                    日历部件(时间轴)
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.20" data-path="../CTRLS/CALENDAREXPBAR.html">
            
                <a href="../CTRLS/CALENDAREXPBAR.html">
            
                    
                    日历导航
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.21" data-path="../CTRLS/TREEEXPBAR.html">
            
                <a href="../CTRLS/TREEEXPBAR.html">
            
                    
                    树导航
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.22" data-path="../CTRLS/TREEVIEWUNIT.html">
            
                <a href="../CTRLS/TREEVIEWUNIT.html">
            
                    
                    树视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.23" data-path="../CTRLS/TREEGRID.html">
            
                <a href="../CTRLS/TREEGRID.html">
            
                    
                    树表格
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.24" data-path="../CTRLS/MULTIEDITVIEWPANEL.html">
            
                <a href="../CTRLS/MULTIEDITVIEWPANEL.html">
            
                    
                    多编辑视图面板
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.25" data-path="../CTRLS/KANBANVIEWUNIT.html">
            
                <a href="../CTRLS/KANBANVIEWUNIT.html">
            
                    
                    看板视图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.26" data-path="../CTRLS/GANTT.html">
            
                <a href="../CTRLS/GANTT.html">
            
                    
                    甘特图部件
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.27" data-path="../CTRLS/DATACHART.html">
            
                <a href="../CTRLS/DATACHART.html">
            
                    
                    数据图表
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.28" data-path="../CTRLS/SELECTVIEWPANEL.html">
            
                <a href="../CTRLS/SELECTVIEWPANEL.html">
            
                    
                    选择视图面板
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.29" data-path="../CTRLS/WIZARDPANEL.html">
            
                <a href="../CTRLS/WIZARDPANEL.html">
            
                    
                    向导面板
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.30" data-path="../CTRLS/STATEWIZARDPANEL.html">
            
                <a href="../CTRLS/STATEWIZARDPANEL.html">
            
                    
                    状态向导面板
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.31" data-path="../CTRLS/CONTEXTMENU.html">
            
                <a href="../CTRLS/CONTEXTMENU.html">
            
                    
                    上下文菜单
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.3.32" data-path="../CTRLS/TOOLBAR.html">
            
                <a href="../CTRLS/TOOLBAR.html">
            
                    
                    工具栏
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="2.4" >
            
                <span>
            
                    
                    编辑器
            
                </span>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.4.1" data-path="../EDITORS/BASIC.html">
            
                <a href="../EDITORS/BASIC.html">
            
                    
                    基础类
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.4.2" data-path="../EDITORS/SHOW.html">
            
                <a href="../EDITORS/SHOW.html">
            
                    
                    展示类
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.4.3" data-path="../EDITORS/SELECT.html">
            
                <a href="../EDITORS/SELECT.html">
            
                    
                    选择类
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.4.4" data-path="../EDITORS/TIME.html">
            
                <a href="../EDITORS/TIME.html">
            
                    
                    时间类
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.4.5" data-path="../EDITORS/FILEUPLOADlIST.html">
            
                <a href="../EDITORS/FILEUPLOADlIST.html">
            
                    
                    文件上传类
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.4.6" data-path="../EDITORS/DATASELECT.html">
            
                <a href="../EDITORS/DATASELECT.html">
            
                    
                    数据选择类
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.4.7" data-path="../EDITORS/AUTOCOMPLETELIST.html">
            
                <a href="../EDITORS/AUTOCOMPLETELIST.html">
            
                    
                    自动填充类
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="2.5" >
            
                <span>
            
                    
                    逻辑
            
                </span>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.5.1" data-path="APPFUNC.html">
            
                <a href="APPFUNC.html">
            
                    
                    应用功能
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.5.2" data-path="ACTION.html">
            
                <a href="ACTION.html">
            
                    
                    界面行为
            
                </a>
            

            
        </li>
    
        <li class="chapter active" data-level="2.5.3" data-path="VIEWLOGIC.html">
            
                <a href="VIEWLOGIC.html">
            
                    
                    视图逻辑
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="2.6" >
            
                <span>
            
                    
                    UI服务
            
                </span>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.6.1" data-path="../UISERVICE/CTRLSERVICE.html">
            
                <a href="../UISERVICE/CTRLSERVICE.html">
            
                    
                    部件服务
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.6.2" data-path="../UISERVICE/UISERVICE.html">
            
                <a href="../UISERVICE/UISERVICE.html">
            
                    
                    界面服务
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.6.3" data-path="../UISERVICE/AUTHSERVICE.html">
            
                <a href="../UISERVICE/AUTHSERVICE.html">
            
                    
                    权限服务
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.6.4" data-path="../UISERVICE/CODELISTSERVICE.html">
            
                <a href="../UISERVICE/CODELISTSERVICE.html">
            
                    
                    代码表服务
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.6.5" data-path="../UISERVICE/COUNTERSERVICE.html">
            
                <a href="../UISERVICE/COUNTERSERVICE.html">
            
                    
                    计数器服务
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.6.6" data-path="../UISERVICE/APPUTILSERVICE.html">
            
                <a href="../UISERVICE/APPUTILSERVICE.html">
            
                    
                    应用功能服务
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.6.7" data-path="../UISERVICE/VIEWMESSAGESERVICE.html">
            
                <a href="../UISERVICE/VIEWMESSAGESERVICE.html">
            
                    
                    视图消息服务
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="2.7" >
            
                <span>
            
                    
                    数据服务
            
                </span>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.7.1" data-path="../DATASERVICE/DATASERVICE.html">
            
                <a href="../DATASERVICE/DATASERVICE.html">
            
                    
                    数据服务
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="2.8" data-path="../APPS/PROBLEM.html">
            
                <a href="../APPS/PROBLEM.html">
            
                    
                    常见问题
            
                </a>
            

            
        </li>
    

    

    <li class="divider"></li>

    <li>
        <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
            Published with GitBook
        </a>
    </li>
</ul>


                </nav>
            
        
    </div>

    <div class="book-body">
        
            <div class="body-inner">
                
                    

<div class="book-header" role="navigation">
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href=".." >视图逻辑</a>
    </h1>
</div>




                    <div class="page-wrapper" tabindex="-1" role="main">
                        <div class="page-inner">
                            
<div id="book-search-results">
    <div class="search-noresults">
    
                                <section class="normal markdown-section">
                                
                                <h2 id="&#x89C6;&#x56FE;&#x903B;&#x8F91;"><a href="https://modelapi.ibizlab.cn/#/net/ibizsys/model/app/view/IPSAppViewLogic" target="_blank">&#x89C6;&#x56FE;&#x903B;&#x8F91;</a></h2>
<p>&#x89C6;&#x56FE;&#x903B;&#x8F91;&#x5305;&#x542B;&#x4E3A;&#x754C;&#x9762;&#x884C;&#x4E3A;&#x51C6;&#x5907;&#x53C2;&#x6570;&#x5E76;&#x8C03;&#x7528;&#x754C;&#x9762;&#x884C;&#x4E3A;&#x7684;&#x903B;&#x8F91;&#x4E8B;&#x4EF6;&#xFF0C;&#x6253;&#x5F00;&#x7F16;&#x8F91;&#x6570;&#x636E;&#x89C6;&#x56FE;&#x548C;&#x6253;&#x5F00;&#x65B0;&#x5EFA;&#x6570;&#x636E;&#x89C6;&#x56FE;&#x3002;</p>
<h3 id="&#x57FA;&#x7840;&#x7528;&#x6CD5;"><a href="http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/tree/master/@LOGIC/@VIEWLOGIC" target="_blank">&#x57FA;&#x7840;&#x7528;&#x6CD5;</a></h3>
<table>
<thead>
<tr>
<th>&#x7F16;&#x53F7;</th>
<th>&#x529F;&#x80FD;</th>
<th>&#x6A21;&#x578B;</th>
<th>&#x8BF4;&#x660E;</th>
</tr>
</thead>
<tbody>
<tr>
<td>L030001</td>
<td>&#x903B;&#x8F91;&#x7C7B;&#x578B;</td>
<td>getLogicType()</td>
<td>&#x83B7;&#x53D6;&#x89E6;&#x53D1;&#x7684;&#x903B;&#x8F91;&#x7C7B;&#x578B;</td>
</tr>
<tr>
<td>L030002</td>
<td>&#x754C;&#x9762;&#x884C;&#x4E3A;</td>
<td>getPSAppViewUIAction()</td>
<td>&#x83B7;&#x53D6;&#x89E6;&#x53D1;&#x7684;&#x754C;&#x9762;&#x884C;&#x4E3A;&#x5BF9;&#x8C61;</td>
</tr>
<tr>
<td>L030003</td>
<td>&#x89C6;&#x56FE;&#x903B;&#x8F91;&#x6240;&#x5728;&#x90E8;&#x4EF6;&#x5BB9;&#x5668;</td>
<td>getPSControlContainer()</td>
<td>&#x83B7;&#x53D6;&#x89C6;&#x56FE;&#x903B;&#x8F91;&#x6240;&#x5728;&#x90E8;&#x4EF6;&#x5BB9;&#x5668;&#x5BF9;&#x8C61;</td>
</tr>
<tr>
<td>L030004</td>
<td>&#x89C6;&#x56FE;&#x903B;&#x8F91;</td>
<td>getPSViewLogic()</td>
<td>&#x83B7;&#x53D6;&#x89C6;&#x56FE;&#x903B;&#x8F91;&#x5BF9;&#x8C61;</td>
</tr>
</tbody>
</table>
<h3 id="&#x6267;&#x884C;&#x903B;&#x8F91;">&#x6267;&#x884C;&#x903B;&#x8F91;</h3>
<p>&#x89C6;&#x56FE;&#x4E2D;&#x83B7;&#x53D6;&#x89C6;&#x56FE;&#x903B;&#x8F91;&#x96C6;&#x5408;&#xFF0C;&#x5C06;&#x5176;&#x53D1;&#x5E03;</p>
<pre><code class="lang-typescript">&lt;#if view.getPSAppViewLogics()??&gt;
&lt;#list view.getPSAppViewLogics() as logic&gt;
&lt;#if logic.getLogicTrigger() == &quot;CUSTOM&quot; || logic.getLogicTrigger() == &quot;CTRLEVENT&quot;&gt;
${P.getLogicCode(logic, &quot;LOGIC.vue&quot;).code}
&lt;/#if&gt;
&lt;/#list&gt;
&lt;/#if&gt;
</code></pre>
<blockquote style="border-color: blue;"><p>&#x903B;&#x8F91;&#x4E8B;&#x4EF6;</p></blockquote>

<p>&#x4E3A;&#x754C;&#x9762;&#x884C;&#x4E3A;&#x51C6;&#x5907;&#x53C2;&#x6570;&#x5E76;&#x8C03;&#x7528;&#x754C;&#x9762;&#x884C;&#x4E3A;&#xFF0C;&#x4E3B;&#x8981;&#x7528;&#x4E8E;&#x5DE5;&#x5177;&#x680F;&#x90E8;&#x4EF6;&#x70B9;&#x51FB;&#x65F6;&#x89E6;&#x53D1;&#x7684;&#x903B;&#x8F91;&#x3002;&#x5F53;&#x89E6;&#x53D1;&#x903B;&#x8F91;&#x7C7B;&#x578B;&#x4E3A;APPVIEWUIACTION&#xFF0C;&#x5E76;&#x4E14;&#x5B58;&#x5728;&#x89C6;&#x56FE;&#x754C;&#x9762;&#x884C;&#x4E3A;&#xFF0C;&#x5219;&#x4F1A;&#x4E3A;&#x754C;&#x9762;&#x884C;&#x4E3A;&#x51C6;&#x5907;&#x53C2;&#x6570;&#x5E76;&#x8C03;&#x7528;&#x754C;&#x9762;&#x884C;&#x4E3A;&#x3002;</p>
<pre><code class="lang-typescript">    /**
     * &#x903B;&#x8F91;&#x4E8B;&#x4EF6;
     *
     * @param {*} [params={}]
     * @param {*} [tag]
     * @param {*} [$event]
     * @memberof 
     */
    public ${item.name}(params: any = {}, tag?: any, $event?: any) {
&lt;#--  &#x4E8B;&#x4EF6;&#x53C2;&#x6570;&#xFF08;&#x672A;&#x652F;&#x6301;&#xFF09;  --&gt;
&lt;#if item.getEventArg()?? &amp;&amp; item.getEventArg()?length gt 0&gt;
        // &#x53C2;&#x6570;
&lt;/#if&gt;
&lt;#--  &#x89E6;&#x53D1;&#x903B;&#x8F91;&#x7C7B;&#x578B;&#x4E3A;APPVIEWUIACTION&#x4E14;&#x5B58;&#x5728;&#x89C6;&#x56FE;&#x754C;&#x9762;&#x884C;&#x4E3A;  --&gt;
&lt;#if item.getLogicType() == &apos;APPVIEWUIACTION&apos; &amp;&amp; item.getPSAppViewUIAction()??&gt;
  &lt;#assign uiAction = item.getPSAppViewUIAction().getPSUIAction() /&gt;
        // &#x53D6;&#x6570;
        let datas: any[] = [];
        let xData: any = null;
        // _this &#x6307;&#x5411;&#x5BB9;&#x5668;&#x5BF9;&#x8C61;
        const _this: any = this;
        let paramJO:any = {};
        let contextJO:any = {};
  &lt;#--  &#x662F;&#x5426;&#x5B58;&#x5728;&#x754C;&#x9762;&#x884C;&#x4E3A;&#x6570;&#x636E;&#x90E8;&#x4EF6;  --&gt;
  &lt;#if item.getPSAppViewUIAction().getXDataPSControl?? &amp;&amp; item.getPSAppViewUIAction().getXDataPSControl()??&gt;
    &lt;#assign xData = item.getPSAppViewUIAction().getXDataPSControl()/&gt;
      &lt;#--  &#x754C;&#x9762;&#x884C;&#x4E3A;&#x6570;&#x636E;&#x90E8;&#x4EF6;&#x4E0E;&#x63A7;&#x4EF6;&#x5BB9;&#x5668;&#x4E0D;&#x540C;&#x65F6;&#xFF0C;&#x5373;&#x903B;&#x8F91;&#x4E8B;&#x4EF6;&#x5728;&#x89C6;&#x56FE;&#x91CC;&#x65F6;  --&gt;
      &lt;#if xData != item.getPSAppViewUIAction().getPSControlContainer()&gt;
        xData = this.$refs.${xData.name?lower_case};
        if (xData.getDatas &amp;&amp; xData.getDatas instanceof Function) {
            datas = [...xData.getDatas()];
        }
      &lt;#--  &#x903B;&#x8F91;&#x4E8B;&#x4EF6;&#x5728;&#x6570;&#x636E;&#x90E8;&#x4EF6;&#x91CC;&#x65F6;  --&gt;
      &lt;#else&gt;
        xData = this;
        if (_this.getDatas &amp;&amp; _this.getDatas instanceof Function) {
            datas = [..._this.getDatas()];
        }
      &lt;/#if&gt;
  &lt;#else&gt;
        if (_this.getDatas &amp;&amp; _this.getDatas instanceof Function) {
            datas = [..._this.getDatas()];
        }
  &lt;/#if&gt;
        if(params){
          datas = [params];
        }
        // &#x754C;&#x9762;&#x884C;&#x4E3A;
        &lt;#if item.getPSAppViewUIAction().getPSUIAction()??&gt;
        &lt;#assign uiaction = item.getPSAppViewUIAction().getPSUIAction()/&gt;
        &lt;#-- &#x5C5E;&#x4E8E;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x7684;&#x754C;&#x9762;&#x884C;&#x4E3A;&#x8D70;UI&#x670D;&#x52A1;start --&gt;
        &lt;#if uiaction.getPSAppDataEntity?? &amp;&amp; uiaction.getPSAppDataEntity()??&gt;
        &lt;#assign curAppEntity = uiaction.getPSAppDataEntity() /&gt;
        &lt;#if uiaction.getPSAppWFVer?? &amp;&amp; uiaction.getPSAppWFVer()??&gt;
        const curUIService:${srfclassname(&apos;${uiaction.getPSAppWFVer().getCodeName()}&apos;)}WFUIService = new ${srfclassname(&apos;${uiaction.getPSAppWFVer().getCodeName()}&apos;)}WFUIService();
        &lt;#else&gt;
        const curUIService:${srfclassname(&apos;${curAppEntity.getCodeName()}&apos;)}UIService  = new ${srfclassname(&apos;${curAppEntity.getCodeName()}&apos;)}UIService();
        &lt;/#if&gt;
        &lt;#if item.getPSControlContainer()?? &amp;&amp; item.getPSControlContainer().getPSAppDataEntity()??&gt;
        &lt;#assign appDataEntity = item.getPSControlContainer().getPSAppDataEntity()/&gt;
        curUIService.${uiaction.getFullCodeName()}(datas,contextJO, paramJO,  $event, xData,this,&lt;#if appDataEntity??&gt;&quot;${appDataEntity.getCodeName()}&quot;&lt;#else&gt;null&lt;/#if&gt;);
        &lt;/#if&gt;
        &lt;#else&gt;
        &lt;#if item.getPSControlContainer()?? &amp;&amp; item.getPSControlContainer().getPSAppDataEntity()??&gt;
        &lt;#assign appDataEntity = item.getPSControlContainer().getPSAppDataEntity()/&gt;
        this.${uiaction.getFullCodeName()}(datas, contextJO,paramJO,  $event, xData,this,&quot;${appDataEntity.getCodeName()}&quot;);
        &lt;#else&gt;
        this.${uiaction.getFullCodeName()}(datas, contextJO,paramJO,  $event, xData,this,undefined);
        &lt;/#if&gt;
        &lt;/#if&gt;
        &lt;#-- &#x5C5E;&#x4E8E;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x7684;&#x754C;&#x9762;&#x884C;&#x4E3A;&#x8D70;UI&#x670D;&#x52A1;end --&gt;
        &lt;/#if&gt;
        &lt;/#if&gt;
    }
</code></pre>
<blockquote style="border-color: blue;"><p>&#x6253;&#x5F00;&#x7F16;&#x8F91;&#x6570;&#x636E;&#x89C6;&#x56FE;</p></blockquote>

<p>&#x89C6;&#x56FE;&#x903B;&#x8F91;&#x4E3A;&#x6253;&#x5F00;&#x6570;&#x636E;&#x89C6;&#x56FE;&#x65F6;&#xFF0C;&#x4FBF;&#x51C6;&#x5907;&#x53C2;&#x6570;&#x5E76;&#x6253;&#x5F00;&#x89C6;&#x56FE;&#x3002;&#x5982;&#x679C;&#x6253;&#x5F00;&#x89C6;&#x56FE;&#x4E3A;&#x91CD;&#x5B9A;&#x5411;&#x89C6;&#x56FE;&#xFF0C;&#x5219;&#x6253;&#x5F00;&#x65B9;&#x5F0F;&#x7531;&#x89C6;&#x56FE;&#x7C7B;&#x578B;&#x6765;&#x51B3;&#x5B9A;&#x3002;&#x4E0D;&#x4E3A;&#x91CD;&#x5B9A;&#x5411;&#x89C6;&#x56FE;&#x65F6;&#xFF0C;&#x5219;&#x6839;&#x636E;&#x89C6;&#x56FE;&#x7684;&#x6253;&#x5F00;&#x65B9;&#x5F0F;&#x6765;&#x6253;&#x5F00;&#x89C6;&#x56FE;&#x3002;</p>
<pre><code class="lang-typescript">&lt;#if item.getPSViewLogic?? &amp;&amp; item.getPSViewLogic()??&gt;
&lt;#assign viewlogic = item.getPSViewLogic()/&gt;
    /**
     * &#x6253;&#x5F00;&#x7F16;&#x8F91;&#x6570;&#x636E;&#x89C6;&#x56FE;
     *
     * @param {any[]} args
     * @param {*} [params]
     * @param {*} [fullargs]
     * @param {*} [$event]
     * @param {*} [xData]
     * @memberof ${srfclassname(&apos;${view.name}&apos;)}
     */
    public ${item.name}(args: any[],fullargs?:any,params?: any, $event?: any, xData?: any) {
    &lt;#if item.getPSControlContainer().getViewType??&gt;
        if(!this.viewDefaultUsage){
            if(Object.is(this.navModel,&quot;route&quot;)){
                this.initNavDataWithRoute(this.viewCacheData, false, true);
            }else{
                this.initNavDataWithTab(this.viewCacheData, false, true);
            }
        }
    &lt;/#if&gt;
    &lt;#if viewlogic.getPSAppUILogicRefViews?? &amp;&amp; viewlogic.getPSAppUILogicRefViews()??&gt;
    &lt;#list viewlogic.getPSAppUILogicRefViews() as appUILogicRefView&gt;
    &lt;#if appUILogicRefView_index == 0&gt;&lt;#assign curOPenLogicRefView = appUILogicRefView /&gt;&lt;/#if&gt;
    &lt;/#list&gt;
    &lt;/#if&gt;
        let localContext:any = &lt;#if curOPenLogicRefView?? &amp;&amp; curOPenLogicRefView.getPSNavigateContexts?? &amp;&amp; curOPenLogicRefView.getPSNavigateContexts()??&gt;&lt;@getNavigateContext curOPenLogicRefView /&gt;&lt;#else&gt;null&lt;/#if&gt;;
        let localViewParam:any =&lt;#if curOPenLogicRefView?? &amp;&amp; curOPenLogicRefView.getPSNavigateParams?? &amp;&amp; curOPenLogicRefView.getPSNavigateParams()??&gt;&lt;@getNavigateParams curOPenLogicRefView /&gt;&lt;#else&gt;null&lt;/#if&gt;;
    &lt;#if viewlogic.getOpenDataPSAppView()??&gt;
        &lt;#assign dataview = viewlogic.getOpenDataPSAppView()/&gt;
        const data: any = {};
        let tempContext = JSON.parse(JSON.stringify(this.context));
        if(args.length &gt;0){
            Object.assign(tempContext,args[0]);
        }
        &lt;#-- BEGIN&#xFF1A;&#x5BFC;&#x822A;&#x53C2;&#x6570; --&gt;
        &lt;#if curOPenLogicRefView?? &amp;&amp; curOPenLogicRefView.getPSNavigateContexts?? &amp;&amp; curOPenLogicRefView.getPSNavigateContexts()??&gt;
        if(localContext &amp;&amp; Object.keys(localContext).length &gt;0){
            let _context:any = this.$util.computedNavData(args[0],this.context,this.viewparams,localContext);
            Object.assign(tempContext,_context);
        }
        &lt;/#if&gt;
        &lt;#if curOPenLogicRefView?? &amp;&amp; curOPenLogicRefView.getPSNavigateParams?? &amp;&amp; curOPenLogicRefView.getPSNavigateParams()??&gt;
        if(localViewParam &amp;&amp; Object.keys(localViewParam).length &gt;0){
            let _param:any = this.$util.computedNavData(args[0],this.context,this.viewparams,localViewParam);
            Object.assign(data,_param);
        }
        &lt;/#if&gt;
        &lt;#-- END&#xFF1A;&#x5BFC;&#x822A;&#x53C2;&#x6570; --&gt;
        &lt;#-- BEGIN&#xFF1A;&#x5DE5;&#x4F5C;&#x6D41;&#x4F20;&#x9012;userTaskId --&gt;
        &lt;#if dataview.getViewType() == &quot;DEWFDYNAEDITVIEW&quot; &gt;
        if(this.viewparams &amp;&amp; this.viewparams.userTaskId){
            Object.assign(data,{&apos;userTaskId&apos;:this.viewparams.userTaskId})
        }
        &lt;/#if&gt;
        &lt;#-- END&#xFF1A;&#x5DE5;&#x4F5C;&#x6D41;&#x4F20;&#x9012;userTaskId --&gt;
        &lt;#--  BEGIN&#xFF1A;&#x51C6;&#x5907;&#x53C2;&#x6570;  --&gt;
        &lt;#if dataview.isRedirectView() &amp;&amp; dataview.getViewType() != &quot;DEREDIRECTVIEW&quot;&gt;
        const deResParameters: any[] = [];
        const parameters: any[] = [];
        &lt;#else&gt;
        &lt;#--  BEGIN&#xFF1A;&#x662F;&#x5426;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x89C6;&#x56FE;  --&gt;
        &lt;#if dataview.isPSDEView()&gt;
        &lt;#-- &#x5B58;&#x5728;&#x5173;&#x7CFB;start --&gt;
        &lt;#if dataview.getPSAppDERSPathCount() gt 0&gt;
        &lt;#list 1..dataview.getPSAppDERSPathCount() as count&gt;
        &lt;#assign condition = &apos;&apos;/&gt;
        &lt;#list dataview.getPSAppDERSPath(count_index)  as deRSPath&gt;
            &lt;#if deRSPath.getMajorPSAppDataEntity?? &amp;&amp; deRSPath.getMajorPSAppDataEntity()??&gt;
                &lt;#assign _dataEntity = deRSPath.getMajorPSAppDataEntity()/&gt;
                &lt;#assign condition&gt;${condition}tempContext.${_dataEntity.getCodeName()?lower_case} &amp;&amp; &lt;/#assign&gt;
            &lt;/#if&gt;
        &lt;/#list&gt;
        &lt;/#list&gt;
        let deResParameters: any[] = [];
        &lt;#-- &#x5982;&#x679C;&#x662F;&#x4E3B;&#x5B9E;&#x4F53;&#x9700;&#x5BF9;context&#x5224;&#x65AD;start --&gt;
        &lt;#if dataview.getPSAppDataEntity().isMajor()&gt;
        if(${condition}true){
            deResParameters = [
            &lt;#list dataview.getPSAppDERSPath(dataview.getPSAppDERSPathCount() - 1) as deRSPath&gt;
            &lt;#assign majorPSAppDataEntity = deRSPath.getMajorPSAppDataEntity()/&gt;
            { pathName: &apos;${srfpluralize(majorPSAppDataEntity.codeName)?lower_case}&apos;, parameterName: &apos;${majorPSAppDataEntity.getCodeName()?lower_case}&apos; },
            &lt;/#list&gt;
            ]
        }
        &lt;#else&gt;
        deResParameters = [
            &lt;#list dataview.getPSAppDERSPath(dataview.getPSAppDERSPathCount() - 1) as deRSPath&gt;
            &lt;#assign majorPSAppDataEntity = deRSPath.getMajorPSAppDataEntity()/&gt;
            { pathName: &apos;${srfpluralize(majorPSAppDataEntity.codeName)?lower_case}&apos;, parameterName: &apos;${majorPSAppDataEntity.getCodeName()?lower_case}&apos; },
            &lt;/#list&gt;
        ];
        &lt;/#if&gt;
        &lt;#-- &#x5982;&#x679C;&#x662F;&#x4E3B;&#x5B9E;&#x4F53;&#x9700;&#x5BF9;context&#x5224;&#x65AD;end --&gt;
        &lt;#else&gt;
        const deResParameters: any[] = [];
        &lt;/#if&gt;
        &lt;#-- &#x5B58;&#x5728;&#x5173;&#x7CFB;end --&gt;
        &lt;#else&gt;
        const deResParameters: any[] = [];
        &lt;/#if&gt;
        &lt;#--  END&#xFF1A;&#x662F;&#x5426;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x89C6;&#x56FE;  --&gt;
        &lt;#if dataview.getOpenMode() == &apos;INDEXVIEWTAB&apos; || dataview.getOpenMode() == &apos;&apos;&gt;
        &lt;#--  BEGIN&#xFF1A;&#x662F;&#x5426;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x89C6;&#x56FE;  --&gt;
        &lt;#if dataview.isPSDEView()&gt;
        &lt;#assign appDataEntity = dataview.getPSAppDataEntity()/&gt;
        const parameters: any[] = [
            { pathName: &apos;${srfpluralize(appDataEntity.codeName)?lower_case}&apos;, parameterName: &apos;${appDataEntity.getCodeName()?lower_case}&apos; },
            { pathName: &apos;${dataview.getPSDEViewCodeName()?lower_case}&apos;, parameterName: &apos;${dataview.getPSDEViewCodeName()?lower_case}&apos; },
        ];
        &lt;#else&gt;
        const parameters: any[] = [
            { pathName: &apos;${dataview.getCodeName()?lower_case}&apos;, parameterName: &apos;${dataview.getCodeName()?lower_case}&apos; },
        ];
        &lt;/#if&gt;
        &lt;#--  END&#xFF1A;&#x662F;&#x5426;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x89C6;&#x56FE;  --&gt;
        &lt;#else&gt;
        &lt;#--  BEGIN&#xFF1A;&#x662F;&#x5426;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x89C6;&#x56FE;  --&gt;
        &lt;#if dataview.isPSDEView()&gt;
        &lt;#assign appDataEntity = dataview.getPSAppDataEntity()/&gt;
        const parameters: any[] = [
            { pathName: &apos;${srfpluralize(appDataEntity.codeName)?lower_case}&apos;, parameterName: &apos;${appDataEntity.getCodeName()?lower_case}&apos; },
        ];
        &lt;#else&gt;
        const parameters: any[] = [];
        &lt;/#if&gt;
        &lt;#--  END&#xFF1A;&#x662F;&#x5426;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x89C6;&#x56FE;  --&gt;
        &lt;/#if&gt;
        &lt;/#if&gt;
        &lt;#--  END&#xFF1A;&#x51C6;&#x5907;&#x53C2;&#x6570;  --&gt;
        &lt;#if dataview.isRedirectView()&gt;
        &lt;#if dataview.getViewType() == &quot;DEWFDATAREDIRECTVIEW&quot; || dataview.getViewType() == &quot;APPWFREDIRECTVIEW&quot;&gt;
        &lt;#-- &#x5E94;&#x7528;&#x5168;&#x5C40;&#x6D41;&#x7A0B;&#x5DE5;&#x4F5C;&#x91CD;&#x5B9A;&#x5411;&#x89C6;&#x56FE;and&#x5B9E;&#x4F53;&#x5168;&#x5C40;&#x6D41;&#x7A0B;&#x6570;&#x636E;&#x91CD;&#x5B9A;&#x5411;&#x89C6;&#x56FE;start --&gt;
        if(fullargs &amp;&amp; fullargs.length &gt;0){
           &lt;#noparse&gt;window.open(`${fullargs[0].viewurl}srfworklist=${fullargs[0].wfworklistid}`);&lt;/#noparse&gt;
           window.addEventListener(&quot;message&quot;,(event:any) =&gt;{
            const data:any = event.data;
            if (Object.is(data.identification,&apos;WF&apos;)){
                return ;
            }
            if(Object.is(data.status,&apos;OK&apos;)){
                let xData:any = this.$refs.grid;
                if (xData.refresh &amp;&amp; xData.refresh instanceof Function) {
                    setTimeout(() =&gt; {
                        xData.refresh();
                    }, 1000);
                }
            }
           })
        }else{
           console.error(&quot;&#x91CD;&#x5B9A;&#x5411;&#x5730;&#x5740;&#x6709;&#x8BEF;&quot;);
        }
        &lt;#-- &#x5E94;&#x7528;&#x5168;&#x5C40;&#x6D41;&#x7A0B;&#x5DE5;&#x4F5C;&#x91CD;&#x5B9A;&#x5411;&#x89C6;&#x56FE;and&#x5B9E;&#x4F53;&#x5168;&#x5C40;&#x6D41;&#x7A0B;&#x6570;&#x636E;&#x91CD;&#x5B9A;&#x5411;&#x89C6;&#x56FE;end --&gt;
        &lt;#else&gt;
        &lt;#-- &#x5B9E;&#x4F53;&#x6570;&#x636E;&#x91CD;&#x5B9A;&#x5411;&#x89C6;&#x56FE;start --&gt;
        const routePath = this.$viewTool.buildUpRoutePath(this.$route, tempContext, deResParameters, parameters, args, data);
        this.$router.push(routePath);
        &lt;#-- &#x5B9E;&#x4F53;&#x6570;&#x636E;&#x91CD;&#x5B9A;&#x5411;&#x89C6;&#x56FE;end --&gt;
        &lt;/#if&gt;
        &lt;#elseif dataview.getOpenMode() == &apos;INDEXVIEWTAB&apos; || dataview.getOpenMode() == &apos;&apos;&gt;
        &lt;#--  &#x6253;&#x5F00;&#x9876;&#x7EA7;&#x5206;&#x9875;&#x89C6;&#x56FE; --&gt;
        const _this: any = this;
        if(fullargs &amp;&amp; fullargs.copymode){
            Object.assign(data,{copymode:true});
        }
        const openIndexViewTab = (data: any) =&gt; {
            const routePath = this.$viewTool.buildUpRoutePath(this.$route, tempContext, deResParameters, parameters, args, data);
            this.$router.push(routePath);
        }
        openIndexViewTab(data);
        &lt;#elseif dataview.getOpenMode() == &apos;POPUPAPP&apos;&gt;
        &lt;#--  &#x6253;&#x5F00;&#x72EC;&#x7ACB;&#x7A0B;&#x5E8F;&#x5F39;&#x51FA;  --&gt;
        const _this: any = this;
        if(fullargs &amp;&amp; fullargs.copymode){
            Object.assign(data,{copymode:true});
        }
        const routePath = this.$viewTool.buildUpRoutePath(this.$route, tempContext, deResParameters, parameters, args, data);
        window.open(&apos;./#&apos;+routePath, &apos;_blank&apos;);
        &lt;#elseif dataview.getOpenMode() = &apos;POPUPMODAL&apos;&gt;
        &lt;#--  &#x6253;&#x5F00;&#x6A21;&#x6001;  --&gt;
        const _this: any = this;
        if(fullargs &amp;&amp; fullargs.copymode){
            Object.assign(data,{copymode:true});
        }
        const openPopupModal = (view: any, data: any) =&gt; {
            let container: Subject&lt;any&gt; = this.$appmodal.openModal(view, tempContext, data);
            container.subscribe((result: any) =&gt; {
                if (!result || !Object.is(result.ret, &apos;OK&apos;)) {
                    return;
                }
                if (!xData || !(xData.refresh instanceof Function)) {
                    return;
                }
                xData.refresh(result.datas);
            });
        }
        const view: any = {
            viewname: &apos;${srffilepath2(dataview.getCodeName())}&apos;, 
            height: ${dataview.getHeight()?c}, 
            width: ${dataview.getWidth()?c},  
            title: this.&lt;@getViewLanguageTitle dataview /&gt;,
        };
        openPopupModal(view, data);
        &lt;#elseif dataview.getOpenMode()?index_of(&apos;DRAWER&apos;) == 0&gt;
        &lt;#--  &#x6253;&#x5F00;&#x62BD;&#x5C49;  --&gt;
        const _this: any = this;
        if(fullargs &amp;&amp; fullargs.copymode){
            Object.assign(data,{copymode:true});
        }
        const openDrawer = (view: any, data: any) =&gt; {
            let container: Subject&lt;any&gt; = this.$appdrawer.openDrawer(view, tempContext, data);
            container.subscribe((result: any) =&gt; {
                if (!result || !Object.is(result.ret, &apos;OK&apos;)) {
                    return;
                }
                if (!xData || !(xData.refresh instanceof Function)) {
                    return;
                }
                xData.refresh(result.datas);
            });
        }
        const view: any = {
            viewname: &apos;${srffilepath2(dataview.getCodeName())}&apos;, 
            height: ${dataview.getHeight()?c}, 
            width: ${dataview.getWidth()?c},  
            title: this.&lt;@getViewLanguageTitle dataview /&gt;,
            placement: &apos;${dataview.getOpenMode()}&apos;,
        };
        openDrawer(view, data);
        &lt;#elseif dataview.getOpenMode() == &apos;POPOVER&apos;&gt;
        &lt;#--  &#x6253;&#x5F00;&#x6C14;&#x6CE1;&#x5361;&#x7247;  --&gt;
        const _this: any = this;
        if(fullargs &amp;&amp; fullargs.copymode){
            Object.assign(data,{copymode:true});
        }
        const openPopOver = (view: any, data: any) =&gt; {
            let container: Subject&lt;any&gt; = this.$apppopover.openPop($event, view, tempContext, data);
            container.subscribe((result: any) =&gt; {
                if (!result || !Object.is(result.ret, &apos;OK&apos;)) {
                    return;
                }
                if (!xData || !(xData.refresh instanceof Function)) {
                    return;
                }
                xData.refresh(result.datas);
            });
        }
        const view: any = {
            viewname: &apos;${srffilepath2(dataview.getCodeName())}&apos;, 
            height: ${dataview.getHeight()?c}, 
            width: ${dataview.getWidth()?c},  
            title: this.&lt;@getViewLanguageTitle dataview /&gt;,
            placement: &apos;${dataview.getOpenMode()}&apos;,
        };
        openPopOver(view, data);
        &lt;#else&gt;
        this.$Notice.warning({ title: &apos;&#x9519;&#x8BEF;&apos;, desc: this.&lt;@getViewLanguageTitle dataview /&gt;+&apos;&#x4E0D;&#x652F;&#x6301;&#x8BE5;&#x6A21;&#x5F0F;&#x6253;&#x5F00;&apos; });
        &lt;/#if&gt;
    &lt;#else&gt;
    this.$Notice.warning({ title: &apos;&#x9519;&#x8BEF;&apos;, desc: &apos;&#x672A;&#x6307;&#x5B9A;&#x5173;&#x7CFB;&#x89C6;&#x56FE;&apos; });
    &lt;/#if&gt;
    }
&lt;/#if&gt;
</code></pre>
<blockquote style="border-color: blue;"><p>&#x6253;&#x5F00;&#x65B0;&#x5EFA;&#x6570;&#x636E;&#x89C6;&#x56FE;</p></blockquote>

<p>&#x6253;&#x5F00;&#x65B0;&#x5EFA;&#x6570;&#x636E;&#x89C6;&#x56FE;&#x6709;3&#x79CD;&#x5F62;&#x5F0F;&#xFF1A;</p>
<p>1.&#x652F;&#x6301;&#x5411;&#x5BFC;(&#x7D22;&#x5F15;)&#x65B0;&#x5EFA;&#x6570;&#x636E;  </p>
<p>&#x5F53;&#x89C6;&#x56FE;&#x903B;&#x8F91;&#x4E3A;&#x5411;&#x5BFC;&#x65B0;&#x5EFA;&#x6570;&#x636E;&#x65F6;&#xFF0C;&#x5219;&#x9700;&#x6DFB;&#x52A0;&#x4E00;&#x4E2A;&#x5411;&#x5BFC;(&#x7D22;&#x5F15;)&#x89C6;&#x56FE;&#xFF0C;&#x89E6;&#x53D1;&#x65B0;&#x5EFA;&#x884C;&#x4E3A;&#x65F6;&#x6A21;&#x6001;&#x6253;&#x5F00;&#x5411;&#x5BFC;(&#x7D22;&#x5F15;)&#x89C6;&#x56FE;&#xFF0C;&#x9009;&#x62E9;&#x8981;&#x65B0;&#x5EFA;&#x7684;&#x5BF9;&#x8C61;&#x540E;&#xFF0C;&#x51C6;&#x5907;&#x53C2;&#x6570;&#x518D;&#x8DEF;&#x7531;&#x8DF3;&#x8F6C;&#x5230;&#x65B0;&#x5EFA;&#x9875;&#x9762;&#xFF1B;</p>
<p>2.&#x6279;&#x91CF;&#x6DFB;&#x52A0;  </p>
<p>&#x5F53;&#x89C6;&#x56FE;&#x903B;&#x8F91;&#x4E3A;&#x6279;&#x91CF;&#x6DFB;&#x52A0;&#x65F6;&#xFF0C;&#x9700;&#x6DFB;&#x5B9E;&#x4F53;&#x4E0E;&#x5B9E;&#x4F53;&#x7684;&#x591A;&#x5BF9;&#x591A;&#x5173;&#x7CFB;&#xFF0C;&#x7528;&#x4E00;&#x4E2A;&#x4E2D;&#x95F4;&#x5B9E;&#x4F53;&#x8054;&#x7CFB;&#x8D77;&#x6765;&#xFF0C;&#x89E6;&#x53D1;&#x65B0;&#x5EFA;&#x884C;&#x4E3A;&#x65F6;&#x6A21;&#x6001;&#x6253;&#x5F00;&#x6570;&#x636E;&#x591A;&#x9879;&#x9009;&#x62E9;&#x89C6;&#x56FE;&#xFF0C;&#x9009;&#x62E9;&#x8981;&#x65B0;&#x5EFA;&#x7684;&#x6570;&#x636E;&#x70B9;&#x51FB;&#x786E;&#x8BA4;&#x540E;&#x8C03;&#x7528;&#x5B9E;&#x4F53;&#x670D;&#x52A1;&#x7684;createBatch&#x65B9;&#x6CD5;&#x8FDB;&#x884C;&#x6279;&#x91CF;&#x6DFB;&#x52A0;&#xFF1B;</p>
<p>3.&#x9ED8;&#x8BA4;&#x65B0;&#x5EFA;&#x6570;&#x636E;</p>
<p>&#x5F53;&#x89C6;&#x56FE;&#x903B;&#x8F91;&#x4E3A;&#x9ED8;&#x8BA4;&#x65B0;&#x5EFA;&#x6570;&#x636E;&#x65F6;&#xFF0C;&#x5219;&#x51C6;&#x5907;&#x53C2;&#x6570;&#xFF0C;&#x5E76;&#x6839;&#x636E;&#x6253;&#x5F00;&#x65B9;&#x5F0F;&#x6253;&#x5F00;&#x9ED8;&#x8BA4;&#x65B0;&#x5EFA;&#x6570;&#x636E;&#x89C6;&#x56FE;&#x3002;</p>
<pre><code class="lang-typescript">    &lt;#macro getres tempView&gt;
    &lt;#compress&gt;
    &lt;#if tempView.getPSAppDataEntity?? &amp;&amp; tempView.getPSAppDataEntity()?? &amp;&amp; tempView.getPSAppDataEntity().getMajorPSAppDERSs?? &amp;&amp; tempView.getPSAppDataEntity().getMajorPSAppDERSs()??&gt;
    &lt;#assign appDataEneity = tempView.getPSAppDataEntity() /&gt;
    &lt;#if appDataEneity.getMajorPSAppDERSs?? &amp;&amp; appDataEneity.getMajorPSAppDERSs()??&gt;
    [&lt;#list appDataEneity.getMajorPSAppDERSs() as psDes&gt;&lt;#if !P.exists(&quot;importService&quot;, psDes.getMajorPSAppDataEntity().getId(), &quot;&quot;)&gt;&apos;${psDes.getMajorPSAppDataEntity().getCodeName()}&apos;&lt;/#if&gt;&lt;/#list&gt;]
    &lt;/#if&gt;
    &lt;/#if&gt;
    &lt;/#compress&gt;
    &lt;/#macro&gt;
    &lt;#macro getreskey appEntity curEntity&gt;
    &lt;#compress&gt;
    &lt;#if appEntity.getMajorPSAppDERSs()??&gt;
    &lt;#list appEntity.getMajorPSAppDERSs() as appDeRs&gt;
    &lt;#if appDeRs.getMinorPSAppDataEntity().getCodeName() == curEntity.getCodeName()&gt;
    ${appDeRs.getPSDER1N().getPSPickupDEField().getCodeName()?lower_case}
    &lt;/#if&gt;
    &lt;/#list&gt;
    &lt;/#if&gt;
    &lt;/#compress&gt;
    &lt;/#macro&gt;
    &lt;#if item.getPSViewLogic?? &amp;&amp; item.getPSViewLogic()??&gt;
    &lt;#assign viewlogic = item.getPSViewLogic()/&gt;
    /**
     * &#x6253;&#x5F00;&#x65B0;&#x5EFA;&#x6570;&#x636E;&#x89C6;&#x56FE;
     *
     * @param {any[]} args
     * @param {*} [params]
     * @param {*} [fullargs]
     * @param {*} [$event]
     * @param {*} [xData]
     * @memberof ${srfclassname(&apos;${view.name}&apos;)}
     */
    public newdata(args: any[],fullargs?:any[], params?: any, $event?: any, xData?: any) {
    &lt;#if viewlogic.getPSAppUILogicRefViews?? &amp;&amp; viewlogic.getPSAppUILogicRefViews()??&gt;
    &lt;#list viewlogic.getPSAppUILogicRefViews() as appUILogicRefView&gt;
    &lt;#if appUILogicRefView_index == 0&gt;&lt;#assign curNewLogicRefView = appUILogicRefView /&gt;&lt;/#if&gt;
    &lt;/#list&gt;
    &lt;/#if&gt;
        let localContext:any = &lt;#if curNewLogicRefView?? &amp;&amp; curNewLogicRefView.getPSNavigateContexts?? &amp;&amp; curNewLogicRefView.getPSNavigateContexts()??&gt;&lt;@getNavigateContext curNewLogicRefView /&gt;&lt;#else&gt;null&lt;/#if&gt;;
        let localViewParam:any =&lt;#if curNewLogicRefView?? &amp;&amp; curNewLogicRefView.getPSNavigateParams?? &amp;&amp; curNewLogicRefView.getPSNavigateParams()??&gt;&lt;@getNavigateParams curNewLogicRefView /&gt;&lt;#else&gt;null&lt;/#if&gt;;
    &lt;#if viewlogic.isEnableWizardAdd()&gt;
        &lt;#if viewlogic.getWizardPSAppView?? &amp;&amp; viewlogic.getWizardPSAppView()??&gt;
        &lt;#assign wizardAppView = viewlogic.getWizardPSAppView() /&gt;
        let wizardAppView:any = {viewname:&apos;${srffilepath2(wizardAppView.getCodeName())}&apos;,height: ${wizardAppView.getHeight()?c},width: ${wizardAppView.getWidth()?c},title: &apos;${wizardAppView.title}&apos;};
        let container: Subject&lt;any&gt; = this.$appmodal.openModal(wizardAppView, JSON.parse(JSON.stringify(this.context)), args[0]);
        container.subscribe((result: any) =&gt; {
            if (!result || !Object.is(result.ret, &apos;OK&apos;)) {
                return;
            }
            if(result &amp;&amp; result.datas &amp;&amp; result.datas.length &gt;0 ){
                let targetkey:string = result.datas[0].srfkey;
                &lt;#if viewlogic.getNewDataPSAppViews?? &amp;&amp; viewlogic.getNewDataPSAppViews()??&gt;
                let newDataAppViews:any ={
                &lt;#list viewlogic.getNewDataPSAppViews() as newDataAppView&gt;
                &lt;#compress&gt;${newDataAppView.getRefMode()}:&lt;#if newDataAppView.isPSDEView()&gt;&lt;#assign appDataEntity = newDataAppView.getPSAppDataEntity() /&gt;[{ pathName: &apos;${srfpluralize(appDataEntity.codeName)?lower_case}&apos;, parameterName: &apos;${appDataEntity.getCodeName()?lower_case}&apos; },{ pathName: &apos;${newDataAppView.getPSDEViewCodeName()?lower_case}&apos;, parameterName: &apos;${newDataAppView.getPSDEViewCodeName()?lower_case}&apos; }]&lt;#else&gt;[]&lt;/#if&gt;&lt;#if newDataAppView_has_next&gt;,&lt;/#if&gt;&lt;/#compress&gt;
                &lt;/#list&gt;
                };
                &lt;/#if&gt;
                const data: any = {};
                if(args[0].srfsourcekey) data.srfsourcekey = args[0].srfsourcekey;
                let tempContext = JSON.parse(JSON.stringify(this.context));
                const openIndexViewTab = (data: any) =&gt; {
                    const _data: any = { w: (new Date().getTime()) };
                    Object.assign(_data, data);
                    const routePath = this.$viewTool.buildUpRoutePath(this.$route, tempContext, [], newDataAppViews[targetkey], args, _data);
                    this.$router.push(routePath);
                }
                openIndexViewTab(data);
            }
        })
        &lt;#else&gt;
        this.$Notice.warning({ title: &apos;&#x9519;&#x8BEF;&apos;, desc: &apos;&#x8BF7;&#x6DFB;&#x52A0;&#x65B0;&#x5EFA;&#x6570;&#x636E;&#x5411;&#x5BFC;&#x89C6;&#x56FE;&apos; });
        &lt;/#if&gt;
    &lt;#elseif viewlogic.isEnableBatchAdd()&gt;
        &lt;#--  &#x6279;&#x91CF;&#x6DFB;&#x52A0;  --&gt;
        let batchAddPSAppViews:Array&lt;any&gt;=[];
        &lt;#if viewlogic.getBatchAddPSAppViews??  &amp;&amp;  viewlogic.getBatchAddPSAppViews()??&gt;
        &lt;#assign batchAddPSAppViews = viewlogic.getBatchAddPSAppViews()/&gt;
        batchAddPSAppViews=[
        &lt;#list batchAddPSAppViews as batchAddPSAppView&gt;
            {view:{viewname:&apos;${srffilepath2(batchAddPSAppView.getCodeName())}&apos;,height: ${batchAddPSAppView.getHeight()?c},width: ${batchAddPSAppView.getWidth()?c},title: &apos;${batchAddPSAppView.title}&apos;},
            res:&lt;@getres tempView=batchAddPSAppView /&gt;&lt;#if batchAddPSAppView.getPSAppDataEntity()??&gt;&lt;#assign appDataEntity= batchAddPSAppView.getPSAppDataEntity()/&gt;,
            &apos;resAppKey&apos;:&apos;&lt;@getreskey appEntity=appDataEntity curEntity=view.getPSAppDataEntity() /&gt;&apos;&lt;/#if&gt;}&lt;#if batchAddPSAppView_has_next&gt;,&lt;/#if&gt;
        &lt;/#list&gt;
        ];
        &lt;/#if&gt;
        if(batchAddPSAppViews.length == 0 || !this.context.srfparentdename){
            this.$Notice.warning({ title: &apos;&#x9519;&#x8BEF;&apos;, desc: &apos;&#x6279;&#x91CF;&#x6DFB;&#x52A0;&#x9700;&#x6DFB;&#x52A0;N:N&#x5173;&#x7CFB;&apos; });
            return;
        }
        let openViewModel:any = batchAddPSAppViews.find((item:any) =&gt;{
            return (item.res &amp;&amp; (item.res[0] !== this.context.srfparentdename));
        })
        let otherViewModel:any = batchAddPSAppViews.find((item:any) =&gt;{
            return (item.res &amp;&amp; (item.res[0] == this.context.srfparentdename));
        })
        let container: Subject&lt;any&gt; = this.$appmodal.openModal(openViewModel.view, JSON.parse(JSON.stringify(this.context)), args[0]);
        container.subscribe((result: any) =&gt; {
            if (!result || !Object.is(result.ret, &apos;OK&apos;)) {
                return;
            }
            if(result.datas &amp;&amp; result.datas.length == 0){
                return;
            }
            let requestParam:Array&lt;any&gt; = [];
            result.datas.forEach((record:any) =&gt; {
                let tempParam:any = {};
                tempParam[otherViewModel.resAppKey] = this.context[&apos;srfparentkey&apos;];
                tempParam[openViewModel.resAppKey] = record.srfkey;
                requestParam.push(tempParam);
            });
            this.appEntityService.createBatch(JSON.parse(JSON.stringify(this.context)),requestParam,true).then((response:any) =&gt;{
                if (!response || response.status !== 200) {
                    this.$Notice.error({ title: &apos;&#x9519;&#x8BEF;&apos;, desc: &apos;&#x6279;&#x5904;&#x7406;&#x64CD;&#x4F5C;&#x5931;&#x8D25;&apos; });
                    return;
                }
                if (!xData || !(xData.refresh instanceof Function)) {
                    return;
                }
                xData.refresh(result.datas);
            });
        });
    &lt;#elseif viewlogic.isBatchAddOnly()&gt;
        this.$Notice.warning({ title: &apos;&#x9519;&#x8BEF;&apos;, desc: &apos;&#x53EA;&#x652F;&#x6301;&#x6279;&#x6DFB;&#x52A0;&#x672A;&#x5B9E;&#x73B0;&apos; });
    &lt;#elseif viewlogic.getNewDataPSAppView()??&gt;
        &lt;#assign dataview = viewlogic.getNewDataPSAppView()/&gt;
        const data: any = {};
        if(args[0].srfsourcekey){
            data.srfsourcekey = args[0].srfsourcekey;
        }
        let tempContext = JSON.parse(JSON.stringify(this.context));
        &lt;#if dataview.isPSDEView()&gt;
        &lt;#assign appDataEntity = dataview.getPSAppDataEntity()/&gt;
        delete tempContext.${appDataEntity.getCodeName()?lower_case};
        &lt;/#if&gt;
        if(args.length &gt;0){
            Object.assign(tempContext,args[0]);
        }
        &lt;#-- BEGIN&#xFF1A;&#x5BFC;&#x822A;&#x53C2;&#x6570; --&gt;
        &lt;#if curNewLogicRefView?? &amp;&amp; curNewLogicRefView.getPSNavigateContexts?? &amp;&amp; curNewLogicRefView.getPSNavigateContexts()??&gt;
        if(localContext &amp;&amp; Object.keys(localContext).length &gt;0){
            let _context:any = this.$util.computedNavData(args[0],this.context,this.viewparams,localContext);
            Object.assign(tempContext,_context);
        }
        &lt;/#if&gt;
        &lt;#if curNewLogicRefView?? &amp;&amp; curNewLogicRefView.getPSNavigateParams?? &amp;&amp; curNewLogicRefView.getPSNavigateParams()??&gt;
        if(localViewParam &amp;&amp; Object.keys(localViewParam).length &gt;0){
            let _param:any = this.$util.computedNavData(args[0],this.context,this.viewparams,localViewParam);
            Object.assign(data,_param);
        }
        &lt;/#if&gt;
        &lt;#-- END&#xFF1A;&#x5BFC;&#x822A;&#x53C2;&#x6570; --&gt;
        &lt;#--  BEGIN&#xFF1A;&#x51C6;&#x5907;&#x53C2;&#x6570;  --&gt;
        &lt;#--  BEGIN&#xFF1A;&#x662F;&#x5426;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x89C6;&#x56FE;  --&gt;
        &lt;#if dataview.isPSDEView()&gt;
        &lt;#-- &#x5B58;&#x5728;&#x5173;&#x7CFB;start --&gt;
        &lt;#if dataview.getPSAppDERSPathCount() gt 0&gt;
        &lt;#list 1..dataview.getPSAppDERSPathCount() as count&gt;
        &lt;#assign condition = &apos;&apos;/&gt;
        &lt;#list dataview.getPSAppDERSPath(count_index)  as deRSPath&gt;
            &lt;#if deRSPath.getMajorPSAppDataEntity?? &amp;&amp; deRSPath.getMajorPSAppDataEntity()??&gt;
                &lt;#assign _dataEntity = deRSPath.getMajorPSAppDataEntity()/&gt;
                &lt;#assign condition&gt;${condition}tempContext.${_dataEntity.getCodeName()?lower_case} &amp;&amp; &lt;/#assign&gt;
            &lt;/#if&gt;
        &lt;/#list&gt;
        &lt;/#list&gt;
        let deResParameters: any[] = [];
        &lt;#-- &#x5982;&#x679C;&#x662F;&#x4E3B;&#x5B9E;&#x4F53;&#x9700;&#x5BF9;context&#x5224;&#x65AD;start --&gt;
        &lt;#if dataview.getPSAppDataEntity().isMajor()&gt;
        if(${condition}true){
            deResParameters = [
            &lt;#list dataview.getPSAppDERSPath(dataview.getPSAppDERSPathCount() - 1) as deRSPath&gt;
            &lt;#assign majorPSAppDataEntity = deRSPath.getMajorPSAppDataEntity()/&gt;
            { pathName: &apos;${srfpluralize(majorPSAppDataEntity.codeName)?lower_case}&apos;, parameterName: &apos;${majorPSAppDataEntity.getCodeName()?lower_case}&apos; },
            &lt;/#list&gt;
            ]
        }
        &lt;#else&gt;
        deResParameters = [
            &lt;#list dataview.getPSAppDERSPath(dataview.getPSAppDERSPathCount() - 1) as deRSPath&gt;
            &lt;#assign majorPSAppDataEntity = deRSPath.getMajorPSAppDataEntity()/&gt;
            { pathName: &apos;${srfpluralize(majorPSAppDataEntity.codeName)?lower_case}&apos;, parameterName: &apos;${majorPSAppDataEntity.getCodeName()?lower_case}&apos; },
            &lt;/#list&gt;
        ];
        &lt;/#if&gt;
        &lt;#-- &#x5982;&#x679C;&#x662F;&#x4E3B;&#x5B9E;&#x4F53;&#x9700;&#x5BF9;context&#x5224;&#x65AD;end --&gt;
        &lt;#else&gt;
        const deResParameters: any[] = [];
        &lt;/#if&gt;
        &lt;#-- &#x5B58;&#x5728;&#x5173;&#x7CFB;end --&gt;
        &lt;#else&gt;
        const deResParameters: any[] = [];
        &lt;/#if&gt;
        &lt;#--  END&#xFF1A;&#x662F;&#x5426;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x89C6;&#x56FE;  --&gt;       
        &lt;#if dataview.getOpenMode() == &apos;INDEXVIEWTAB&apos; || dataview.getOpenMode() == &apos;&apos;&gt;
        &lt;#--  BEGIN&#xFF1A;&#x662F;&#x5426;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x89C6;&#x56FE;  --&gt;
        &lt;#if dataview.isPSDEView()&gt;
        &lt;#assign appDataEntity = dataview.getPSAppDataEntity()/&gt;
        const parameters: any[] = [
            { pathName: &apos;${srfpluralize(appDataEntity.codeName)?lower_case}&apos;, parameterName: &apos;${appDataEntity.getCodeName()?lower_case}&apos; },
            { pathName: &apos;${dataview.getPSDEViewCodeName()?lower_case}&apos;, parameterName: &apos;${dataview.getPSDEViewCodeName()?lower_case}&apos; },
        ];
        &lt;#else&gt;
        const parameters: any[] = [
            { pathName: &apos;${dataview.getCodeName()?lower_case}&apos;, parameterName: &apos;${dataview.getCodeName()?lower_case}&apos; },
        ];
        &lt;/#if&gt;
        &lt;#--  END&#xFF1A;&#x662F;&#x5426;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x89C6;&#x56FE;  --&gt;
        &lt;#else&gt;
        &lt;#--  BEGIN&#xFF1A;&#x662F;&#x5426;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x89C6;&#x56FE;  --&gt;
        &lt;#if dataview.isPSDEView()&gt;
        &lt;#assign appDataEntity = dataview.getPSAppDataEntity()/&gt;
        const parameters: any[] = [
            { pathName: &apos;${srfpluralize(appDataEntity.codeName)?lower_case}&apos;, parameterName: &apos;${appDataEntity.getCodeName()?lower_case}&apos; },
        ];
        &lt;#else&gt;
        const parameters: any[] = [];
        &lt;/#if&gt;
        &lt;#--  END&#xFF1A;&#x662F;&#x5426;&#x5E94;&#x7528;&#x5B9E;&#x4F53;&#x89C6;&#x56FE;  --&gt;
        &lt;/#if&gt;
        &lt;#--  END&#xFF1A;&#x51C6;&#x5907;&#x53C2;&#x6570;  --&gt;
        &lt;#if dataview.getOpenMode() == &apos;INDEXVIEWTAB&apos; || dataview.getOpenMode() == &apos;&apos;&gt;
        &lt;#--  &#x6253;&#x5F00;&#x9876;&#x7EA7;&#x5206;&#x9875;&#x89C6;&#x56FE;  --&gt;
        const _this: any = this;
        const openIndexViewTab = (data: any) =&gt; {
            const _data: any = { w: (new Date().getTime()) };
            Object.assign(_data, data);
            const routePath = this.$viewTool.buildUpRoutePath(this.$route, tempContext, deResParameters, parameters, args, _data);
            this.$router.push(routePath);
        }
        openIndexViewTab(data);
        &lt;#elseif dataview.getOpenMode() == &apos;POPUPAPP&apos;&gt;
        &lt;#--  &#x6253;&#x5F00;&#x72EC;&#x7ACB;&#x7A0B;&#x5E8F;&#x5F39;&#x51FA;  --&gt;
        const _this: any = this;
        const routePath = this.$viewTool.buildUpRoutePath(this.$route, tempContext, deResParameters, parameters, args, data);
        window.open(&apos;./#&apos;+routePath, &apos;_blank&apos;);
        &lt;#elseif dataview.getOpenMode() = &apos;POPUPMODAL&apos;&gt;
        &lt;#--  &#x6253;&#x5F00;&#x6A21;&#x6001;  --&gt;
        const _this: any = this;
        const openPopupModal = (view: any, data: any) =&gt; {
            let container: Subject&lt;any&gt; = this.$appmodal.openModal(view, tempContext, data);
            container.subscribe((result: any) =&gt; {
                if (!result || !Object.is(result.ret, &apos;OK&apos;)) {
                    return;
                }
                if (!xData || !(xData.refresh instanceof Function)) {
                    return;
                }
                xData.refresh(result.datas);
            });
        }
        const view: any = {
            viewname: &apos;${srffilepath2(dataview.getCodeName())}&apos;, 
            height: ${dataview.getHeight()?c}, 
            width: ${dataview.getWidth()?c},  
            title: this.&lt;@getViewLanguageTitle dataview /&gt;,
        };
        openPopupModal(view, data);
        &lt;#elseif dataview.getOpenMode()?index_of(&apos;DRAWER&apos;) == 0&gt;
        &lt;#--  &#x6253;&#x5F00;&#x62BD;&#x5C49;  --&gt;
        const _this: any = this;
        const openDrawer = (view: any, data: any) =&gt; {
            let container: Subject&lt;any&gt; = this.$appdrawer.openDrawer(view, tempContext, data);
            container.subscribe((result: any) =&gt; {
                if (!result || !Object.is(result.ret, &apos;OK&apos;)) {
                    return;
                }
                if (!xData || !(xData.refresh instanceof Function)) {
                    return;
                }
                xData.refresh(result.datas);
            });
        }
        const view: any = {
            viewname: &apos;${srffilepath2(dataview.getCodeName())}&apos;, 
            height: ${dataview.getHeight()?c}, 
            width: ${dataview.getWidth()?c},  
            title: this.&lt;@getViewLanguageTitle dataview /&gt;,
            placement: &apos;${dataview.getOpenMode()}&apos;,
        };
        openDrawer(view, data);
        &lt;#elseif dataview.getOpenMode() == &apos;POPOVER&apos;&gt;
        &lt;#--  &#x6253;&#x5F00;&#x6C14;&#x6CE1;&#x5361;&#x7247;  --&gt;
        const _this: any = this;
        const openPopOver = (view: any, data: any) =&gt; {
            let container: Subject&lt;any&gt; = this.$apppopover.openPop($event, view, tempContext,data);
            container.subscribe((result: any) =&gt; {
                if (!result || !Object.is(result.ret, &apos;OK&apos;)) {
                    return;
                }
                if (!xData || !(xData.refresh instanceof Function)) {
                    return;
                }
                xData.refresh(result.datas);
            });
        }
        const view: any = {
            viewname: &apos;${srffilepath2(dataview.getCodeName())}&apos;, 
            height: ${dataview.getHeight()?c}, 
            width: ${dataview.getWidth()?c},  
            title: this.&lt;@getViewLanguageTitle dataview /&gt;, 
            placement: &apos;${dataview.getOpenMode()}&apos;,
        };
        openPopOver(view, data);
        &lt;#else&gt;
        this.$Notice.warning({ title: &apos;&#x9519;&#x8BEF;&apos;, desc: this.&lt;@getViewLanguageTitle dataview /&gt;+&apos;&#x4E0D;&#x652F;&#x6301;&#x8BE5;&#x6A21;&#x5F0F;&#x6253;&#x5F00;&apos; });
        &lt;/#if&gt;
    &lt;#else&gt;
    this.$Notice.warning({ title: &apos;&#x9519;&#x8BEF;&apos;, desc: &apos;&#x672A;&#x6307;&#x5B9A;&#x5173;&#x7CFB;&#x89C6;&#x56FE;&apos; });
    &lt;/#if&gt;
    }
    &lt;/#if&gt;
</code></pre>

                                
                                </section>
                            
    </div>
    <div class="search-results">
        <div class="has-results">
            
            <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
            <ul class="search-results-list"></ul>
            
        </div>
        <div class="no-results">
            
            <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
            
        </div>
    </div>
</div>

                        </div>
                    </div>
                
            </div>

            
                
                <a href="ACTION.html" class="navigation navigation-prev navigation-unique" aria-label="Previous page: 界面行为">
                    <i class="fa fa-angle-left"></i>
                </a>
                
                
            
        
    </div>

    <script>
        var gitbook = gitbook || [];
        gitbook.push(function() {
            gitbook.page.hasChanged({"page":{"title":"视图逻辑","level":"2.5.3","depth":2,"next":{"title":"UI服务","level":"2.6","depth":1,"ref":"","articles":[{"title":"部件服务","level":"2.6.1","depth":2,"path":"UISERVICE/CTRLSERVICE.md","ref":"./UISERVICE/CTRLSERVICE.md","articles":[]},{"title":"界面服务","level":"2.6.2","depth":2,"path":"UISERVICE/UISERVICE.md","ref":"./UISERVICE/UISERVICE.md","articles":[]},{"title":"权限服务","level":"2.6.3","depth":2,"path":"UISERVICE/AUTHSERVICE.md","ref":"./UISERVICE/AUTHSERVICE.md","articles":[]},{"title":"代码表服务","level":"2.6.4","depth":2,"path":"UISERVICE/CODELISTSERVICE.md","ref":"./UISERVICE/CODELISTSERVICE.md","articles":[]},{"title":"计数器服务","level":"2.6.5","depth":2,"path":"UISERVICE/COUNTERSERVICE.md","ref":"./UISERVICE/COUNTERSERVICE.md","articles":[]},{"title":"应用功能服务","level":"2.6.6","depth":2,"path":"UISERVICE/APPUTILSERVICE.md","ref":"./UISERVICE/APPUTILSERVICE.md","articles":[]},{"title":"视图消息服务","level":"2.6.7","depth":2,"path":"UISERVICE/VIEWMESSAGESERVICE.md","ref":"./UISERVICE/VIEWMESSAGESERVICE.md","articles":[]}]},"previous":{"title":"界面行为","level":"2.5.2","depth":2,"path":"LOGIC/ACTION.md","ref":"./LOGIC/ACTION.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"LOGIC/VIEWLOGIC.md","mtime":"2020-09-28T03:27:59.088Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-11-02T06:38:45.289Z"},"basePath":"..","book":{"language":""}});
        });
    </script>
</div>

        
    <script src="../gitbook/gitbook.js"></script>
    <script src="../gitbook/theme.js"></script>
    
        
        <script src="../gitbook/gitbook-plugin-search/search-engine.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-search/search.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
        
    

    </body>
</html>

